package cn.chinaunicom.dingtalk.sender.entity.interactive;

import cn.hutool.json.JSONObject;
import com.aliyun.dingtalkcard_1_0.models.PrivateDataValue;
import lombok.Data;

import java.util.Map;

@Data
public class CardInstances  {
    private String appId;
    /**
     * 卡片创建者的userId。
     */
    private String userId;
    /**
     * 卡片创建者的userId。
     */
    private Integer userIdType = 1;
    /**
     * 卡片内容模板ID，可通过登录开发者后台 > 卡片平台获取。
     */
    private String cardTemplateId;
    /**
     * 外部卡片实例Id。
     */
    private String outTrackId;
    /**
     * 卡片回调的类型：
     * <p>
     * STREAM：stream模式
     * HTTP：http模式
     */
    private String callbackType = "STREAM";
    /**
     * 卡片回调HTTP模式时的路由 Key，用于查询注册的 callbackUrl。
     */
    private String callbackRouteKey = "";
    /**
     * 卡片数据
     * "cardData": {
     * "cardParamMap": {
     * "intParam": "1",				   // 整数类型属性
     * "floatParam": "1.2.3",	                   // 浮点类型属性
     * "trueParam": "true",		           // 布尔类型属性，对应 TRUE
     * "falseParam": "false"			   // 布尔类型属性，对应 FALSE
     * }
     * }
     */
    private JSONObject cardData;
    /**
     * 用户的私有数据：
     * <p>
     * key：用户userId信息
     * value：用户私有数据
     * "privateData": {
     * "manager1234": {
     * "cardParamMap": {
     * "attendee": "小明、小王",
     * "image1": "mediaIdXXXXX1"
     * }
     * }
     * }
     */
    private Map<String, PrivateDataValue> privateData;

    /**
     * 动态数据源配置。
     * dynamicDataSourceConfigs Array
     * - {dynamicDataSourceId,constParams}
     */
    private JSONObject openDynamicDataConfig;

    /**
     * IM 单聊场域信息。
     */
    private JSONObject imRobotOpenSpaceModel;

    /**
     * IM 群聊场域信息。
     */
    private JSONObject imGroupOpenSpaceModel;

    /**
     * 协作场域信息。
     */
    private JSONObject coFeedOpenSpaceModel;

    /**
     * 协作场域信息。
     */
    private JSONObject topOpenSpaceModel;
}
